package email.controller;

import javax.ejb.EJB;
import javax.enterprise.context.RequestScoped;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.inject.Named;
import javax.mail.MessagingException;
import javax.mail.internet.AddressException;

import email.ejb.EmailBean;
import email.entity.Email;

@Named
@RequestScoped
public class EmailMB {
	private Email infoBean = new Email();
	@EJB
	private EmailBean emailBean;
	
	public void enviarAutenticado() {
		FacesContext faces = FacesContext.getCurrentInstance();
		
		try {
			this.emailBean.enviarEmailAutenticado(this.infoBean);
			faces.addMessage(null, new FacesMessage("E-mail enviado com sucesso."));
		} catch (AddressException e) {
			FacesMessage msg = new FacesMessage("Erro ao enviar e-mail! Erro: \n" + e.getMessage());
			faces.addMessage(null, msg);
			return;
		} catch (MessagingException e) {
			FacesMessage msg = new FacesMessage("Erro ao enviar e-mail! Erro: \n" + e.getMessage());
			faces.addMessage(null, msg);
			return;
		}
	}
	
	public void enviarSimples() {
		FacesContext faces = FacesContext.getCurrentInstance();
		
		try {
			this.emailBean.enviarEmailSimple2(this.infoBean);
			faces.addMessage(null, new FacesMessage("E-mail enviado com sucesso."));
		} catch (AddressException e) {
			FacesMessage msg = new FacesMessage("Erro ao enviar e-mail! Erro: \n" + e.getMessage());
			faces.addMessage(null, msg);
			return;
		} catch (MessagingException e) {
			FacesMessage msg = new FacesMessage("Erro ao enviar e-mail! Erro: \n" + e.getMessage());
			faces.addMessage(null, msg);
			return;
		}
	}

	public Email getInfoBean() {
		return infoBean;
	}

	public void setInfoBean(Email infoBean) {
		this.infoBean = infoBean;
	}
	
	
}
